# range函数就是一个范围函数,内部是根据特定规则生成的整数序列
# 使用格式: range(起始位置, 终止位置, 步长)

# 1. range从起始位置到终止位置时一个左闭右开区间
# 创建一个1-9的整数序列
# 注意: range函数的范围是一个左闭右开区间,从(1,9) 代表的范围就是从1-8的整数区间,这个就是包含1,不包含9, 不需要背.
num_ran = range(1, 9, 1)
print(num_ran)  # range(1, 9, 1)
print(list(num_ran))  # [1, 2, 3, 4, 5, 6, 7, 8]

print('-------------------------------')

# 2. range的步长可以省略,省略后默认步长为1
num_ran = range(1, 9)
print(num_ran)  # range(1, 9)
print(list(num_ran))  # [1, 2, 3, 4, 5, 6, 7, 8]
# 什么叫步长???  在按照规则获取数据时,后一个数字的位置需要减去前一个数字的位置序号为几, 步长就是几
# 我们使用range只可以创建一定规则的整数序列, 所有整数之间步长必须相等,否则无法创建.

print('-------------------------------')

# 3. range 函数可以省略起始位置, 例如 range(10) 默认从 0开始
num_ran = range(10)
print(num_ran)  # range(0, 10)
print(list(num_ran))  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print('-------------------------------')

# 4. range中的步长可以是任意整数
num_ran = range(0, 10, 2)
print(num_ran)  # range(0, 10, 2)
print(list(num_ran))  # [0, 2, 4, 6, 8]
# TypeError: 'float' object cannot be interpreted as an integer
# num_ran = range(0, 10, 2.5)  range中的所有参数,只能使用整型数据

print('-------------------------------')
#   ######################## 配合for循环使用range函数  #############################

# 需求: 打印从1-9的数字
for i in range(1, 10):
    print(i)

print('-------------------------------')
# 需求: 打印从1-9的数字累加和
sum1 = 0
for i in range(1, 10):
    sum1 += i
print(f'1-9的累加和是{sum1}')

print('-------------------------------')
# 需求: 打印从1-9的数字中的偶数累加和
sum1 = 0
for i in range(1, 10):
    if i % 2 == 0:
        sum1 += i
print(f'1-9的偶数累加和是{sum1}')


